<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" /> 
        <title>list filter</title>
        <!-- import Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <div id="root">
            <h2>人员列表</h2>
            <input v-model="keyWord" type="text" placeholder="请输入名字">
            <ul>
                <li v-for="(p, index) in filterPeople" :key="index">
                    {{p.name}} - {{p.age}} - {{p.sex}}
                </li>
            </ul>     
        </div>
    </body>
            
    <script type="text/javascript">
        Vue.config.productionTip = false // 阻止vue在启动时生成生产提示。

         /* 用watch实现 */
        // new Vue({
        //     el:'#root',
        //     data:{
        //         keyWord: '',
        //         people: [
        //             {id:'001', name: '马冬梅', age: 18, sex:"女"},
        //             {id:'002', name: '周冬雨', age: 19, sex:"女"},
        //             {id:'003', name: '周杰伦', age: 20, sex:"男"},
        //             {id:'004', name: '温兆伦', age: 21, sex:"男"},
        //         ],
        //         filterPeople: []
        //     },
        //     watch:{
        //         keyWord:{
        //             immediate: true,
        //             handler(val){
        //                 this.filterPeople = this.people.filter((p) =>{
        //                 return p.name.indexOf(val) !== -1
        //                 })
        //             }
        //         }
        //     }
        // })

        /* 用computed实现*/
        new Vue({
            el:'#root',
            data:{
                keyWord: '',
                people: [
                    {id:'001', name: '马冬梅', age: 18, sex:"女"},
                    {id:'002', name: '周冬雨', age: 19, sex:"女"},
                    {id:'003', name: '周杰伦', age: 20, sex:"男"},
                    {id:'004', name: '温兆伦', age: 21, sex:"男"},
                ],
            },
            computed:{
                filterPeople(){
                    return this.people.filter((p) => {
                        return p.name.indexOf(this.keyWord) !== -1
                    })
                }
            }
        })
        
    </script>
</html>